//js对象
var seckill = {
    // 项目上下文路径
    contextPath: "",
    func: {
        // 初始化函数
        init: function (goodsId, nowTime, startTime, endTime) {
            console.log("商品id：" + goodsId);
            console.log("当前时间：" + nowTime);
            console.log("上下文路径:" + seckill.contextPath);
            console.log("秒杀活动开始时间:" + startTime);
            console.log("秒杀活动结束时间:" + endTime);
            // 判断当前时间 与 秒杀时间
            //我现在页面要怎么动态显示
            if (nowTime < startTime) {
                //秒杀未开始，那么应该显示秒杀倒计时

                //使用jquery的倒计时插件实现倒计时
                var killTime = new Date(startTime + 1000);//防止时间偏移
                $("#seckillTip").countdown(killTime, function (event) {
                    //时间格式
                    var format = event.strftime('距秒杀开始还有: %D天 %H时 %M分 %S秒');
                    $("#seckillTip").html("<span style='color:red;'>"+format+"</span>");
                }).on('finish.countdown', function () {
                    //倒计时结束后回调事件，已经开始秒杀，用户可以进行秒杀了，有两种方式：
                    //1、刷新当前页面 location.reload();
                    location.reload();
                    //或者
                    //2、调用秒杀开始的函数
                    //seckill.func.checkIsSeckillStart(goodId);
                });

            } else if (nowTime > endTime) {
                //秒杀已结束
                $("#seckillTip").html("<span style='color: red;'>来晚了，秒杀活动已经结束了~</span>");
            } else {
                //秒杀正在进行
                seckill.func.checkSeckillIsStart(goodsId);
            }
        },
        // 秒杀开始执行方法  ---- > 并获取随机码
        checkSeckillIsStart: function (goodsId) {
            console.log("检查秒杀是否开始，向后台发送ajax请求获取商品随机码");
            //秒杀开始了，是不是真的开始了，你需要去后台再验证一下，因为页面上黑客他是可以修改时间的
            $.ajax({
                url: seckill.contextPath + "/goods/time/" + goodsId,
                type: "GET",
                dataType: "json",
                success: function (responseMessage) {
                    // 响应成功返回
                    if (responseMessage.code == -1) {
                        $("#seckillTip").html('<span style="color:red">' + responseMessage.msg + '</span>');
                        return;
                    }
                    // 秒杀开始 , 子啊页面显示秒杀按钮
                    $("#seckillTip").html("<button id='btnSeckill'>立即秒杀</button>");
                    // 设置秒杀单机事件
                    $("#btnSeckill").click(function () {
                        // 执行秒杀方法
                        seckill.func.execSeckill(goodsId, responseMessage.data);
                    });
                }
            });
        },
        // 单机按钮 , 真正执行秒杀方法
        execSeckill: function (goodsId, randomCode) {
            console.log("秒杀已开始");
            $.ajax({
                url: seckill.contextPath + "/goods/" + goodsId + "/" + randomCode,
                type: "POST",
                dataType: "json",
                success: function (responseMessage) {
                    if (responseMessage.code == 0) {
                        //秒杀的前半部分已经成了，此处显示一下秒杀的中间结果
                        $('#seckillTip').html("<span>" + responseMessage.msg + "</span>");
                        // 查询秒杀结果功能
                        seckill.func.querySeckillResult(goodsId);
                    } else {
                        $('#seckillTip').html("<span>" + responseMessage.msg + "</span>");
                    }
                }
            })
        },
        // 查询秒杀结果
        querySeckillResult: function (goodsId) {
            // JS定时器，每隔三秒查询下单是否成功
            console.log("查询服务器....");
            // 设置定时器
            seckill.intervalFlag = window.setInterval(function () {
                $.ajax({
                    url: seckill.contextPath + "/goods/result/" + goodsId,
                    type: "GET",
                    dataType: "json",
                    success: function (responseMessage) {
                        if (responseMessage.code == 0) {
                            $("#seckillTip").html("<span>秒杀成功，请在3分钟内完成支付，否则订单将自动关闭。<a href='http://www.alipay.com'>立即支付</a></span>");
                            // 清除定时器
                            window.clearInterval(seckill.intervalFlag);
                            return;
                        }
                        if (responseMessage.code == 1) {
                            $("#seckillTip").html("<span style='color: green;'>很遗憾，秒杀失败了~</span>");
                            //如果查到了结果，把3秒执行一次的逻辑清理一下
                            window.clearInterval(seckill.intervalFlag)
                        }
                    }
                })
            }, 3000);
        }
    }
}


/*
var seckill = {
    //项目上下文路径
    contextPath : "",
    intervalFlag : "",
    //一个属性
    func : {
        init : function (goodId, nowTime, startTime, endTime) {
            //我现在页面要怎么动态显示
            if (nowTime < startTime) {
                //秒杀未开始，那么应该显示秒杀倒计时

                //使用jquery的倒计时插件实现倒计时
                var killTime = new Date(startTime + 1000);//防止时间偏移
                $("#seckillTip").countdown(killTime, function (event) {
                    //时间格式
                    var format = event.strftime('距秒杀开始还有: %D天 %H时 %M分 %S秒');
                    $("#seckillTip").html("<span style='color:red;'>"+format+"</span>");
                }).on('finish.countdown', function () {
                    //倒计时结束后回调事件，已经开始秒杀，用户可以进行秒杀了，有两种方式：
                    //1、刷新当前页面 location.reload();
                    location.reload();
                    //或者
                    //2、调用秒杀开始的函数
                    //seckill.func.checkIsSeckillStart(goodId);
                });

            } else if (nowTime > endTime) {
                //秒杀已结束
                $("#seckillTip").html("<span style='color: red;'>来晚了，秒杀活动已经结束了~</span>");
            } else {
                //秒杀正在进行
                seckill.func.checkIsSeckillStart(goodId);
            }
        },

        //秒杀正在进行
        checkIsSeckillStart : function (goodId) {
            //秒杀开始了，是不是真的开始了，你需要去后台再验证一下，因为页面上黑客他是可以修改时间的
            $.ajax({
                url : seckill.contextPath + "/goods/time/" + goodId,
                type : "GET",
                dataType : "json",
                success : function (responseMessage) {
                    if (responseMessage.code == 0) {
                        var random = responseMessage.data;
                        console.log(random)
                        if (random) {
                            console.log("1111212")
                            //秒杀开始了，可以在页面上显示秒杀按钮
                            $("#seckillTip").html("<button id='seckillBtn'>立即秒杀</button>");
                            $("#seckillBtn").click(function () {
                                //真正去秒杀
                                console.log("101010")
                                seckill.func.execSeckill(goodId, random);
                            })
                        }
                    }
                }
            })
        },

        //真正地去秒杀
        execSeckill : function (goodId, random) {
            console.log(111111)
            console.log(seckill.contextPath);
            $.ajax({
                //真正的秒杀接口地址，秒杀未开始，是不能暴露的
                // http://xxx.xxx.xx/goods/{id}/{random}
                url : seckill.contextPath + "/goods/" + goodId + "/" + random,
                type : "POST",
                dataType : "json",
                success : function (responseMessage) {
                    console.log(responseMessage.msg);
                    if (responseMessage.code == 0) {
                        //秒杀的前半部分已经成了，此处显示一下秒杀的中间结果
                        $("#seckillTip").html("<span style='color:blue;'>"+responseMessage.msg+"</span>")
                        //你需要去查真正的秒杀结果，每过3秒查一次，因为后台是消费消息，然后处理消息，然后下订单，可能你第一次去查的时候，还没有处理完
                        //所以你可能需要查多次，才知道结果
                        seckill.intervalFlag =  window.setInterval(function () {
                            //去查询结果
                            seckill.func.querySeckillResult(goodId);

                        }, 3000);
                    }
                }
            })
        },

        //查询秒杀结果
        querySeckillResult : function (goodId) {
            $.ajax({
                // http://xxx.xxx.xx/goods/result/{id}
                url : seckill.contextPath + "/goods/result/" + goodId,
                type : "POST",
                dataType : "json",
                success : function (responseMessage) {
                    if (responseMessage.code == 0) {
                        $("#seckillTip").html("<span style='color: green;'>秒杀成功，请在3分钟内完成支付，否则订单将自动关闭。<a href='http://www.alipay.com'>立即支付</a></span>");

                        //如果查到了结果，把3秒执行一次的逻辑清理一下
                        window.clearInterval(seckill.intervalFlag)
                    } else if (responseMessage.code == 1) {
                        $("#seckillTip").html("<span style='color: green;'>很遗憾，秒杀失败了~</span>");

                        //如果查到了结果，把3秒执行一次的逻辑清理一下
                        window.clearInterval(seckill.intervalFlag)
                    }
                }
            })
        }
    }
}
*/
